<?php
include('class_connect_db.inc'); 

class user {
	//proprieta
	private $id;
	private $nome;
	private $cognome;
	private $sesso;
	private $email;
	private $indirizzo;
	private $cap;
	private $citta;
	private $provincia;
	private $regione;
	private $nazione;
	private $telefono;
	private $nick;
	private $pass;
	private $time;
	private $db; //collegamento alla classe 'connect_db'
	
	//metodi
	function __construct() {
		$this->id = null;
		$this->nome = null;
		$this->cognome = null;
		$this->sesso = null;
		$this->email = null;
		$this->indirizzo = null;
		$this->cap = null;
		$this->citta = null;
		$this->provincia = null;
		$this->regione = null;
		$this->nazione = null;
		$this->telefono = null;
		$this->nick = null;
		$this->pass = null;
		$this->time = null;
		
		$this->db = new connect_db; //chiama il costruttore
	}
	
	function read_user($nick, $pass) {
		$this->db->connectSQL();
		$this->db->Exec_Query("select id from user where nick='$nick' and pass='$pass'");
		if($this->db->ReturnNum()==1) {
			$this->db->DisconnectSQL();
			return $this->db->ReturnResult(0, 'id'); // prima riga, primo attributo	
		} else {
			$this->db->DisconnectSQL();
			return null;
		}	
	}
	
	function load_user($nick, $pass) {
		$temp_user_id = $this->read_user($nick, $pass);
		if($temp_user_id != null) {
			$this->db->connectSQL();
			$this->db->Exec_Query("select * from user where id='$temp_user_id'");
			
			$this->id = $temp_user_id;
			$this->nome = $this->db->ReturnResult(0, 'nome');
			$this->cognome = $this->db->ReturnResult(0, 'cognome');
			$this->sesso = $this->db->ReturnResult(0, 'sesso');
			$this->email = $this->db->ReturnResult(0, 'email');
			$this->indirizzo = $this->db->ReturnResult(0, 'indirizzo');
			$this->cap = $this->db->ReturnResult(0, 'cap');
			$this->citta = $this->db->ReturnResult(0, 'citta');
			$this->provincia = $this->db->ReturnResult(0, 'provincia');
			$this->regione = $this->db->ReturnResult(0, 'regione');
			$this->nazione = $this->db->ReturnResult(0, 'nazione');
			$this->telefono = $this->db->ReturnResult(0, 'telefono');
			$this->nick = $this->db->ReturnResult(0, 'nick');
			$this->pass = $this->db->ReturnResult(0, 'pass');
			$this->time = $this->db->ReturnResult(0, 'time');
		} else {
			return null;
		}
	}
	
	function get_all_users() {
		$this->db->connectSQL();
		$this->db->Exec_Query("select id from user");
		$numero_risultato = $this->db->ReturnNum();
		if($numero_risultato>=1) {
			for($i=0; $i<$numero_risultato; $i++) {
				$lista_users[$i] = $this->db->ReturnResult($i, 'id');
			}
		} else {
			echo "<p>Spiacente, nessun risultato trovato!</p>";
			$lista_users[] = null;
		}
		$this->db->DisconnectSQL();
		return $lista_users;
		
	}
	
	function load_user_by_id($id) {
		$this->db->connectSQL();
		$this->db->Exec_Query("select * from user where id='$id'");
		
		$this->nome = $this->db->ReturnResult(0, 'nome');
		$this->cognome = $this->db->ReturnResult(0, 'cognome');
		$this->sesso = $this->db->ReturnResult(0, 'sesso');
		$this->email = $this->db->ReturnResult(0, 'email');
		$this->indirizzo = $this->db->ReturnResult(0, 'indirizzo');
		$this->cap = $this->db->ReturnResult(0, 'cap');
		$this->citta = $this->db->ReturnResult(0, 'citta');
		$this->provincia = $this->db->ReturnResult(0, 'provincia');
		$this->regione = $this->db->ReturnResult(0, 'regione');
		$this->nazione = $this->db->ReturnResult(0, 'nazione');
		$this->telefono = $this->db->ReturnResult(0, 'telefono');
		$this->nick = $this->db->ReturnResult(0, 'nick');
		$this->pass = $this->db->ReturnResult(0, 'pass');
		$this->time = $this->db->ReturnResult(0, 'time');
		$this->id = $id;
	}
	
	function new_user($nome, $cognome, $sesso, $email, $indirizzo, $cap, $citta, $provincia, $regione, $nazione, $telefono, $nick, $pass, $time) {
		$this->db->connectSQL();
		$this->db->Exec_Query("insert into user values ('', '$nome', '$cognome', '$sesso', '$email', '$indirizzo', '$cap', '$citta', '$provincia', '$regione', '$nazione', '$telefono', '$nick', '$pass', $time)");
		$this->db->DisconnectSQL();
		// bisogna memorizzare i dati del nuovo utente nella classe, oltre che nel db
		$this->id = $this->read_user($nick, $pass);
		$this->nome = $nome;
		$this->cognome = $cognome;
		$this->sesso = $sesso;
		$this->email = $email;
		$this->indirizzo = $indirizzo;
		$this->cap = $cap;
		$this->citta = $citta;
		$this->provincia = $provincia;
		$this->regione = $regione;
		$this->nazione = $nazione;
		$this->telefono = $telefono;
		$this->nick = $nick;
		$this->pass = $pass;
		$this->time = $time;
	}
	
	function update_user() {
		$this->db->connectSQL();
		$this->db->Exec_Query("update user set nome='$this->nome', cognome='$this->cognome', sesso='$this->sesso', email='$this->email', indirizzo='$this->indirizzo', cap='$this->cap', citta='$this->citta', provincia='$this->provincia', regione='$this->regione', nazione='$this->nazione', telefono='$this->telefono', nick='$this->nick', pass='$this->pass' where id=$this->id");
		$this->db->DisconnectSQL();
	}
	
	function delete_user() {
		$this->db->connectSQL();
		$this->db->Exec_Query("delete from user where id=$this->id");
		$this->db->DisconnectSQL();
	}
	
	function get_nome() {
		return $this->nome;
	}
	
	function get_cognome() {
		return $this->cognome;
	}
	
	function get_sesso() {
		return $this->sesso;
	}
	
	function get_email() {
		return $this->email;
	}
	
	function get_indirizzo() {
		return $this->indirizzo;
	}
	
	function get_cap() {
		return $this->cap;
	}
	
	function get_citta() {
		return $this->citta;
	}
	
	function get_provincia() {
		return $this->provincia;
	}
	
	function get_regione() {
		return $this->regione;
	}
	
	function get_nazione() {
		return $this->nazione;
	}
	
	function get_telefono() {
		return $this->telefono;
	}
	
	function get_nick() {
		return $this->nick;
	}
	
	function get_pass() {
		return $this->pass;
	}
	
	function get_time() {
		return $this->time;
	}
	
	function set_nome($nome) {
		$this->nome = $nome;
		$this->update_user();
	}
	
	function set_cognome($cognome) {
		$this->cognome = $cognome;
		$this->update_user();
	}
	
	function set_sesso($sesso) {
		$this->sesso = $sesso;
		$this->update_user();
	}
	
	function set_email($email) {
		$this->email = $email;
		$this->update_user();
	}
	
	function set_indirizzo($indirizzo) {
		$this->indirizzo = $indirizzo;
		$this->update_user();
	}
	
	function set_cap($cap) {
		$this->cap = $cap;
		$this->update_user();
	}
	
	function set_citta($citta) {
		$this->citta = $citta;
		$this->update_user();
	}
	
	function set_provincia($provincia) {
		$this->provincia = $provincia;
		$this->update_user();
	}
	
	function set_regione($regione) {
		$this->regione = $regione;
		$this->update_user();
	}
	
	function set_nazione($nazione) {
		$this->nazione = $nazione;
		$this->update_user();
	}
	
	function set_telefono($telefono) {
		$this->telefono = $telefono;
		$this->update_user();
	}
	
	function set_nick($nick) {
		$this->nick = $nick;
		$this->update_user();
	}
	
	function set_pass($pass) {
		$this->pass = $pass;
		$this->update_user();
	}	
}
?>